The decreasing cost and increased capacity of portable mass storage media has resulted in numerous secondary devices with an increased ability to store relatively large sized media files, such as picture files, music files, and/or video files, as but a few examples. Secondary devices can take numerous forms, such as audio or video players (e.g., MP3 type players), cell phones incorporating audio/video players, portable gaming devices, personal digital assistants (PDAs), digital still and/or video cameras, and other devices integrating such functions, to name but few.
Typically, a secondary device can include an interface by which data can be transferred out of a host device into the secondary device and/or from the secondary device into the host device. A host device can be a device that can control such data transfers, and can also take various forms. For example, a host device can be larger device, such as a personal computer (PC). However, a host device can be a smaller device, such as another secondary device designated as a host, or some other device type such as a home entertainment system, gaming console, printer, automobile entertainment system, to name but a few of the many possible examples.
Data transfers between a host and secondary device are usually executed according to a predetermined protocol and interface. As but one very particular example, the Media Transfer Protocol (MTP), promulgated by Microsoft Corporation can be used for content exchange between a desktop host system and a secondary device, such as mobile handsets. MTP can operate in conjunction with a universal serial bus (USB) type interface.
In certain secondary device designs, a USB interface and storage functions can be placed in a device such as a bridge/controller.
To better understand various features of the disclosed embodiments, two examples of conventional approaches to implementing MTP type transfers will now be described.
Referring now to FIG. 10, a conventional system is shown in a block diagram and designated by the reference character 1000. Conventional system 1000 can include a host device 1002 and a secondary device 1004. A secondary device 1004 can include a processor 1006, a bridge/controller 1008, and one or more storage sections 1010 (different storage sections shown as 1010-0 and 1010-1). A processor 1006 can include a file system 1011 that can organize data files stored within storage sections 1010. Thus, processor 1006 has direct access to file system 1011.
A bridge/controller 1008 can have a USB interface (I/F) 1012, a processor I/F 1014, and a store I/F 1016. A USB I/F 1012 can provide a communication path between secondary device 1004 and host device 1002. Similarly, a processor I/F 1014 and store I/F 1016 can provide communication paths between bridge/controller 1008 and processor 1006 and storage sections 1010, respectively. Bridge/controller 1008 can provide communication paths between I/Fs 1012, 1014 and 1016.
FIG. 10 also shows two communication processing paths, a data path 1018 and a control path 1020.
In the conventional approach shown in FIG. 10, an MTP type transfer can be implemented “inside” processor 1006. That is, all communication traffic (both control and data) can go through processor 1006. In such an arrangement, a processor 1006 can maintain a file system that includes information on data files contained within store section 1010 and can directly control traffic during accesses to storage section 1010. For example, during a file download operation, data packets can travel from host device 1002 through host I/F 1012 through bridge/controller 1008 and to processor 1006, via processor I/F 1014. Such packets can then travel from processor 1006 to storage section 1010 via store I/F 1016. This manner of operation is conceptualized in FIG. 10 by data path 1018 and control path 1020 both passing from host device 1002 through processor 1006 to storage section 1010.
A conventional arrangement like that of FIG. 10 can have limited throughput as data travels from a host device 1002 to a processor 1004 and then from processor 1004 to storage section 1010. In addition, such a conventional arrangement can require relatively large overhead (e.g., processing power, instruction set size and/or memory capacity) to control such operations. In particular, such operations can consume an undesirably large amount of processor resources (memory, processor cycles) that might otherwise be used for executing other tasks associated with the secondary device 1004.
Referring now to FIG. 11, a second conventional system is shown in a block diagram and designated by the general reference character 1100. A system 1100 can include some of the same general components as that of FIG. 10, thus like components are referred to by the same reference character but with the first two digits being “11” instead of “10”.
System 1100 of FIG. 11 can differ from that of FIG. 10 in that a bridge/controller 1108′ can include greater hardware resources than that shown as 1008 in FIG. 10. In particular, a bridge controller 1108′ can have direct access to a file system 1111′, and can include additional computing power to enable packet processing. Such additional resources can enable MTP type transfers to be implemented within bridge/controller 1108′. For example, during a file download operation, data packets can travel from host device 1102 to bridge/controller 1108′. Bridge/controller 1108′ can then determine and track where such files are be stored, and output such files to storage section 1110. This manner of operation is conceptualized in FIG. 11 by data path 1118-H and control path 1120-H both passing from host device 1102 through bridge controller 1108′ to storage section 1110. At the same time, another data path 1118-P and control path 1120-P are shown passing from processor 1106′ through bridge controller 1108′ to storage section 1110.
A conventional system 1100 shown in FIG. 11 can require a higher performance computing circuit within bridge controller 1108′ than the other conventional example of FIG. 10. In addition, a bridge/controller 1108′ can require a larger memory size, as a file system 1111′ is maintained within the bridge/controller. This can result in greater cost and/or size for a secondary device 1104.